package com.tsy.server.map.service;

import com.tsy.server.map.model.dto.GroupElementDTO;
import com.dji.sdk.cloudapi.map.CreateMapElementRequest;
import com.dji.sdk.cloudapi.map.MapGroupElement;
import com.dji.sdk.cloudapi.map.UpdateMapElementRequest;

import java.util.List;
import java.util.Optional;

/**
 * @author sean
 * @version 0.2
 * @date 2021/11/29
 */
public interface IGroupElementService {

    /**
     * 根据分组ID查询该分组下全部元素。
     * @param groupId 分组ID
     * @return
     */
    List<MapGroupElement> getElementsByGroupId(String groupId);

    /**
     * 保存元素。
     * @param groupId 分组ID
     * @param elementCreate 元素创建请求
     * @return
     */
    Boolean saveElement(String groupId, CreateMapElementRequest elementCreate);

    /**
     * 根据元素ID查询并更新元素信息。
     * @param elementId 元素ID
     * @param elementUpdate 元素更新请求
     * @param username 用户名
     * @return
     */
    Boolean updateElement(String elementId, UpdateMapElementRequest elementUpdate, String username);

    /**
     * 根据元素ID删除元素。
     * @param elementId 元素ID
     * @return
     */
    Boolean deleteElement(String elementId);

    /**
     * 根据元素ID查询元素，包含元素中的坐标信息。
     * @param elementId 元素ID
     * @return
     */
    Optional<GroupElementDTO> getElementByElementId(String elementId);
}
